package cn.tedu.hotel.mapper;

import cn.tedu.hotel.pojo.entity.Room;
import cn.tedu.hotel.pojo.entity.RoomType;
import cn.tedu.hotel.pojo.vo.RoomTypeStandardVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 *  房间与房间类型关联的数据的mapper接口
 */
@Repository
public interface RoomTypeMapper {

    /**
     * 插入房间与房间类型的关联数据
     *
     * @param roomType 房间与房间类型的关联数据
     * @return 受影响的行数
     */
    int insert(RoomType roomType);


    /**
     * 根据房间id，删除房间与房间类型的关联数据
     *
     * @param roomId 房间id
     * @return 受影响的行数
     */
    int deleteByRoomId(Long roomId);

    /**
     *
     * @param roomType
     * @return
     */
    int update(RoomType roomType);

    /**
     *  根据房间与房间类型统计关联数据的数量
     * @param roomId  房间id
     * @param typeId  房间类型id
     * @return  关联数据的数量
     */
    int countByRoomAndType(@Param("roomId") Long roomId,@Param("typeId") Long typeId);

    /**
     *  根据房间id统计房间与房间类型关联的数据数量
     * @param roomId 房间id
     * @return
     */
    int countByRoomId(Long roomId);

    /**
     *  根据房间id 获取关联的详细信息
     * @param roomId 房间id
     * @return
     */
    RoomTypeStandardVO getStandardRoomTypeById(Long roomId);
}
